'use strict'
require('./index.scss')
require('page/common/nav-simple/index.js')

// 通用的JS工具封装
var _wm = require('util/wm.js')
// 用户服务
var _user = require('service/user-service.js')

// 表单错误信息提示
var formError = {
    show: function(errMsg){
        $('.error_item').show().find('.error_msg').text(errMsg)
    },
    hide: function(){
        $('.error_item').hide().find('.error_msg').text('')
    }
}


// 登录的逻辑
var page = {
    init: function(){
        this.bindEvent()
    },

    bindEvent: function(){
        var that = this

        // 异步验证username字段，检查用户名是否已存在
        $('#username').blur(function(){
            var username = $.trim($(this).val())
            // 判断用户名为空，不做验证
            if(!username){
                return 
            }
            _user.checkUsername(username, function(res){
                formError.hide()
            }, function(errMsg){
                formError.show(errMsg)
            })
        })

        // 点击：立即注册
        $('#login_submit').click(function(){
            that.submit()
        })
        // 若input输入完成，按下回车键
        $('.user_form').keyup(function(event){
            // keyCode === 13 表示回车键
            if(event.keyCode === 13){
                that.submit()
            }
        })
    },

    // 提交注册
    submit: function(){
        var formData = {
            username: $.trim($('#username').val()),
            password: $.trim($('#password').val()),
            passwordConfirm: $.trim($('#password_confirm').val()),
            phone: $.trim($('#phone').val()),
            email: $.trim($('#email').val()),
            question: $.trim($('#question').val()),
            answer: $.trim($('#answer').val()),

        },

        // 返回表单验证的结果true or false
        validateResult = this.formValidate(formData)
        if(validateResult.status){  // 验证成功
            _user.register(formData, function(res){
                window.location.href = './result.html?type=register'  // 注册成功
            }, function(errMsg){
                formError.show(errMsg)  // 注册失败
            })
        }else{  // 验证失败
            // 错误提示
            formError.show(validateResult.msg)
        }
    },

    // 表单字段的验证
    formValidate: function(formData){
        // 返回的验证结果
        var result = {
            status: false,
            msg: ''
        }
        // 验证用户名是否为空
        if(!_wm.validate(formData.username, 'require')){
            result.msg = '用户名不能为空'
            return result
        }
        // 验证密码是否为空
        if(!_wm.validate(formData.password, 'require')){
            result.msg = '密码不能为空'
            return result
        }
        // 验证密码长度
        if(formData.password.length < 6){
            result.msg = '密码至少为6位'
            return result
        }
        // 判断2次密码是否一致
        if(formData.password !== formData.passwordConfirm){
            result.msg = '您输入的2次密码不一致'
            return result
        }
        // 验证手机号格式
        if(!_wm.validate(formData.phone, 'phone')){
            result.msg = '手机号格式不正确'
            return result
        }
        // 验证邮箱格式
        if(!_wm.validate(formData.email, 'email')){
            result.msg = '邮箱格式不正确'
            return result
        }
        // 验证密码提示问题是否为空
        if(!_wm.validate(formData.question, 'require')){
            result.msg = '密码提示问题不能为空'
            return result
        }
        // 验证提示问题答案是否为空
        if(!_wm.validate(formData.answer, 'require')){
            result.msg = '密码提示问题答案不能为空'
            return result
        }

        // 验证通过，返回正确提示
        return result = {
            status: true,
            msg: '验证通过'
        }
    }
}

$(function(){
    page.init()
})